#include <iostream>

#include "Joueur.h"

using namespace std;

Joueur::Joueur() {

	rouge[0] = 0.9;
	rouge[1] = 0.0;
	rouge[2] = 0.2;

	vert [0] = 0.0;
	vert [1] = 0.9;
	vert [2] = 0.2;
	
	sonWhatEnCours = 1;
	sonAttackEnCours = 1;
}

void Joueur::setRace(int laRace) {

	race = laRace;

	switch (race) {

	case Joueur::HUMAIN:
		setCouleur(rouge);				
		break;
	case Joueur::ORC:
		setCouleur(vert);
		break;
	}
}

string Joueur::getNom() {
	return this->nom;
}

void Joueur::setNom(string nom) {
	this->nom = nom;
}

void Joueur::setCouleur(float couleur[3]) {
	this->couleur[0] = couleur[0];
	this->couleur[1] = couleur[1];
	this->couleur[2] = couleur[2];
	
	
}

vector<Territoire *> Joueur::getTerritoires() const {
	return lesTerriroires;
}

void Joueur::ajouterTerritoire(Territoire * unTerritoire) {
	lesTerriroires.push_back(unTerritoire);
	unTerritoire->setProprietaire(this);
}

void Joueur::retirerTerritoire(Territoire* unTerritoire) {

	/*
	 * for (int i=0; i<lesTerriroires.size(); i++) {
		cout<<"["<<i<<"] - "<< lesTerriroires[i]->getNom()<<endl;
	}
	*/
	for (int i=0; i<lesTerriroires.size(); i++) {
		if (unTerritoire->getNom() == lesTerriroires[i]->getNom()) {
			cout<<"suppression du territoire "<< lesTerriroires[i]->getNom()
			<<endl;
			lesTerriroires.erase(lesTerriroires.begin()+i-1);
			//lesTerriroires.push_back(unTerritoire);
			// lesTerriroires.erase(i);
		}
	}
	/*
	for (int i=0; i<lesTerriroires.size(); i++) {
		cout<<"["<<i<<"] - "<< lesTerriroires[i]->getNom()<<endl;
	}
	*/
	cout<<"fin retirer armee"<<endl;
}

void Joueur::afficher() {

	cout<<endl<<"Description du joueur"<<endl;
	cout<<"---------------------------------"<<endl;
	cout<<"Nom  = "<< this->nom<< endl;
	cout<<"Race = "<< this->race<< endl;
	cout<<"Nombre d'armees = "<< this->nbArmeeTotal<<endl;

	cout<< endl<<"Liste des territoires:"<<endl;

	for (int i = 0; i < lesTerriroires.size(); i++) {
		lesTerriroires[i]->afficher();
	}
	cout<<"---------------------------------"<<endl;
}

